# -*- coding: utf-8 -*-
"""
@Time    : 2024/7/29 13:33 
@Author  : ZhangShenao 
@File    : 10.使用DoctranQATransformer问答转换器.py 
@Desc    : 使用DoctranQATransformer问答转换器,将原始文档转换为问答格式的文档

LangChain封装了Doctran库,并实现了DoctranQATransformer类
可以方便地实现问答格式的文档转换
这个库底层使用OpenAI的函数回调来实现对问答数据的提取

"""
import os

import dotenv
from langchain_community.document_loaders import UnstructuredFileLoader
from langchain_community.document_transformers import DoctranQATransformer

# 加载环境变量
dotenv.load_dotenv()

# 加载文档
loader = UnstructuredFileLoader('./docs/工作总结.txt')
docs = loader.load()

# 创建DoctranQATransformer问答转换器
transformer = DoctranQATransformer(
    openai_api_key=os.getenv('OPENAI_API_KEY'),
    openai_api_model='gpt-3.5-turbo',
)

# 将原始文档转换为问答格式
# 转换后的多条问答数据,会保存在metadata的questions_and_answers属性中
qa_docs = transformer.transform_documents(docs)
print(qa_docs[0].metadata.get('questions_and_answers'))
